package cn.com.quickpay.core.service.quick;

import java.util.Map;

import cn.com.quickpay.core.common.Configure;
import cn.com.quickpay.core.service.IPostService;
import cn.com.quickpay.core.util.MD5Utils;

public class QuickPay extends IPostService {
	private static final String SERVICE_NAME = "api.sd.quickPay";
	private static final String SERVICE_VERSION = "2.0";
	private static final String SERVICE_CHARSET = "UTF-8";
	private static final String SERVICE_SIGN_TYPE = "MD5";

	@Override
	public String exec(Map<String, String> params) {
		// 通用参数
		params.put("version", SERVICE_VERSION);
		params.put("charset", SERVICE_CHARSET);
		params.put("sign_type", SERVICE_SIGN_TYPE);
		// 请求参数
		params.put("service", SERVICE_NAME);
		params.put("order_time", params.get("order_time"));
		params.put("merchant_no", Configure.getMerchantNo());
		params.put("out_trade_no", params.get("out_trade_no"));
		params.put("total_fee", params.get("total_fee"));
		params.put("body", params.get("body"));
		params.put("client_ip", params.get("client_ip"));
		params.put("time_expire", params.get("time_expire"));
		params.put("return_url", params.get("return_url"));
		params.put("attach", params.get("attach"));
		params.put("device_info", params.get("device_info"));
		
		params = MD5Utils.signMap(params, SERVICE_SIGN_TYPE, Configure.getKey(), SERVICE_CHARSET);
		return txn(Configure.isDevEnv() ? Configure.PAY_GATEWAY_DEV_API : Configure.PAY_GATEWAY_API, params);
	}
}
